package xyz.tanxiao.links.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.tanxiao.links.common.entity.PasswordAccessRequest;
import xyz.tanxiao.links.entity.SlLinkAccess;
import xyz.tanxiao.links.entity.SlLinkMapping;

/**
 * 短链访问Service
 *
 * @author 万成波
 * @email 2300064869@qq.com
 * @createTime 2023-06-10 00:56:57 星期六
 */
public interface SlLinkAccessService extends IService<SlLinkAccess> {

	/**
	 * 从缓存或数据库中获取链接映射信息
	 *
	 * @param mappingKey 映射Key
	 * @return 链接映射信息
	 */
	SlLinkMapping getCacheLinkMapping(String mappingKey);


	/**
	 * 通过映射Key获取长链接映射信息
	 *
	 * @param mappingKey 映射Key
	 * @return 链接映射信息
	 */
	SlLinkMapping generalAccess(String mappingKey);


	/**
	 * 密码访问短链接
	 *
	 * @param request 请求参数
	 * @return 链接映射信息
	 */
	SlLinkMapping passwordAccess(PasswordAccessRequest request);

}
